package myclass

/**
  * Employee
  * 主构造器
  *
  * @author zhangyimin
  * @date 2018-09-14 上午11:29
  * @version 1.0
  */
class Employee(id: Int, name: String) {

  //使用private[this] 说明id和name没有get和set方法

  //  private var id: Int = 0
  //
  //  private var name: String = ""
  //
  //  private[this] var age:Int=18
  //
  //  private val money:Long=3000


  //辅助构造器
  def this(sname: String) {
    //调用主构造器
    this(-1, sname)
    println("调用到辅助构造")
  }
}

object Employee {

  //定义自己的apply方法

  def apply(id: Int, name: String): Unit={
    println("调用到APPLY1方法")
    new Employee(id,name)
  }

  def apply( name: String): Unit={
    println("调用到APPLY2方法")
    new Employee(name)
  }




  def main(args: Array[String]): Unit = {
    //调用的是主构造器
    var s4 = new Employee(1, "mike")
    //调用辅助构造器
    var s5 = new Employee("tom")
    println("xxxxxxx")
    //这里调用到APPLY方法,省略了new关键字
    var s6=Employee(1, "mike")

    var s7=Employee("tom")


  }
}
